#pragma once

#include <unistd.h>
#include <fcntl.h>

//设置文件描述符为非阻塞
bool Setunblock(int fd)
{
    // 1、先获取文件描述符当前的读写权限
    int fl = fcntl(fd, F_GETFL);
    // 2、检查是否获取成功
    if (fl < 0) // 获取失败
        return false;

    // 取文件描述符读写权限成功
    // 3、将文件描述符设置为非阻塞读取(在当前读写权限的基础上添加非阻塞读取权限)
    if (fcntl(fd, F_SETFL, fl | O_NONBLOCK) < 0)
        return false;

    return true;
}